package com.acme.bankapp.domain.bank;

public abstract class AbstractAccount implements Account {
    static int currentMaxId = 0;

    protected int id;
    protected double balance;

	public AbstractAccount(double amount) {
		this.balance = amount;
        currentMaxId++;
        this.id = currentMaxId;
	}

	public double getBalance() {
		return this.balance;
	}

    public int getId() {
        return this.id;
    }

	public abstract void deposit(double amount);

	public abstract void withdraw(double amount);

    public abstract double maximumAmountToWithdraw();
}
